Computer systems generally execute initialization software during the power-on or boot-up process. This initialization software, which is often stored as firmware, is sometimes referred to as the Basic Input/Output System (BIOS), Extensible Firmware Interface (EFI), or Unified Extensible Firmware Interface (UEFI). The BIOS typically configures the memory controller, creates a memory map, and launches the operating system (OS), among other things. Additionally, some computer systems provide the capability for memory hot-add. That is to say, memory modules may be added to the computer while it is powered on and running. These additional memory modules are initialized and configured prior to use by the OS or other entities, using code similar to that used by the BIOS at power up.
The hot-add initialization, however, is typically performed by software or firmware running in a highly privileged/protected state, for example System Management Mode (SMM), during which other processing, including the OS, is suspended. Because execution in SMM is disruptive to the system, as it involves CPU cycle stealing, the hot-add memory module initialization and configuration is scheduled to be performed in relatively short and infrequent time slices, for example less than 100 microseconds out of every second. As such, the hot-add initialization and configuration can take hours, or sometimes days, to complete.
Although the following Detailed Description will proceed with reference being made to illustrative embodiments, many alternatives, modifications, and variations thereof will be apparent in light of this disclosure.